package com.zkthink.ceres.product.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

@ApiModel("订单列表返回对象")
@Data
@Getter
@Setter
public class OrderManagementPageVO extends Page implements Serializable {

    private static final long serialVersionUID = 1L;
    @ApiModelProperty("id")
    private Long id;
    @Excel(name = "订单状态", orderNum = "0", width = 30, replace = {"待付款_1", "待发货_2", "待发货_3", "已完成_4", "已取消_5"})
    @ApiModelProperty("订单状态 订单状态：1-待付款 2-待发货 3-待收货 4-已完成 5-已取消")
    private Integer orderStatus;

    @Excel(name = "退货状态", orderNum = "0", width = 30, replace = {"退货审核中_0", "审核通过,待用户填写物流_1", "审核不通过_2", "退货中_3", "确认收货，待退款_4", "退货完成，拒绝退款_5", "已退款_6", "退款中_7", "退款失败_8", "撤销申请_9", "无_null",})
    @ApiModelProperty("退货状态: 0-退货审核中 1-审核通过,待用户填写物流 2-审核不通过 3-退货中 4-确认收货，待退款 5-退货完成，拒绝退款 6-已退款 7-退款中 8-退款失败 9-撤销申请")
    private Integer returnStatus;

    @ApiModelProperty("订单金额")
    @Excel(name = "订单金额", orderNum = "1", width = 30)
    private BigDecimal orderSum;

    @ApiModelProperty("订单编号")
    @Excel(name = "订单编号", orderNum = "2", width = 30)
    private String orderCode;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss", orderNum = "3", width = 30)
    private Date createTimee;

    @ApiModelProperty(value = "下单手机号")
    private Integer phone;

    @ApiModelProperty("时间查询开始时间")
    private String startDate;

    @ApiModelProperty("时间查询结束时间")
    private String endDate;


    @ApiModelProperty("商户id -1-为查城市俱乐部")
    private String tenantCode;

    @ApiModelProperty("店铺id")
    private Long storeId;

    @ApiModelProperty("店铺名称")
    private String storeName;

    @ApiModelProperty("会员id")
    private Long mid;

    @ApiModelProperty("父订单主键id")
    private Long parentId;

    @ApiModelProperty("父订单编号")
    private String parentCode;


    @ApiModelProperty("支付状态：1-已支付 0-未支付")
    private Integer payStatus;

    @ApiModelProperty("下单账户")
    private String memberAccount;

    @ApiModelProperty("发货时所用的物流公司的主键id")
    private Long logisticsId;

    @ApiModelProperty("快递公司编码")
    private String shipperCode;

    @ApiModelProperty("发货时所用的物流公司的名称")
    private String logisticsName;

    @ApiModelProperty("发货物流单号")
    private String logisticsNum;

    @ApiModelProperty("物流方案")
    private String logisticsCase;

    @ApiModelProperty("售后状态：-1 无售后 1-有退款 2-有退货")
    private Integer returnType;

    @ApiModelProperty("国家")
    private String country;

    @ApiModelProperty("国家id")
    private Integer countryId;

    @ApiModelProperty("省份")
    private String province;

    @ApiModelProperty("省份id")
    private Integer provinceId;

    @ApiModelProperty("城市")
    private String city;

    @ApiModelProperty("城市id")
    private Integer cityId;

    @ApiModelProperty("地区")
    private String district;

    @ApiModelProperty("地区id")
    private Integer districtId;

    @ApiModelProperty("详细地址")
    private String address;

    @ApiModelProperty("收货人名称")
    private String recName;

    @ApiModelProperty("收货人电话")

    private String recMobile;

    @ApiModelProperty("运费")
    private Long postFee;

    @ApiModelProperty("总的消费金额")
    private Long discountAmount;

    @ApiModelProperty("支付金额")
    private Long paySum;

    @ApiModelProperty("发货时间")
    private LocalDateTime sendTime;

    @ApiModelProperty("确认收货的时间")
    private LocalDateTime confirmTime;

    @ApiModelProperty("退款时间")
    private LocalDateTime returnMoneyTime;

    @ApiModelProperty("下单时的备注")
    private String notes;

    @ApiModelProperty("预支付id")
    private String prepayId;

    @ApiModelProperty("付款时间")
    private LocalDateTime payTime;

    @ApiModelProperty("支付方式 1-微信支付 2-支付宝支付")
    private Integer payChannel;

    @ApiModelProperty("支付单号")
    private String payNum;

    @ApiModelProperty("营销活动id")
    private Long promotionId;

    @ApiModelProperty("优惠券id")
    private Long couponId;

    @ApiModelProperty("创建人id")
    private Long createUser;

    @ApiModelProperty("最后修改人id")
    private Long updateUser;

    @ApiModelProperty("最后修改人时间")
    private LocalDateTime updateTime;

    @ApiModelProperty("逻辑删除 1-删除 0-未删除")
    private Integer isDelete;

}
